#pragma once

#ifndef _CSPAWNPOINTGROUP_H_
#define _CSPAWNPOINTGROUP_H_


class CSpawnMobPool;

struct SpawnPoint {
	// id of the parent group
	unsigned int m_groupId;
	// id of the spawnpoint
	unsigned int m_spawnId;
	// position of the spawnpoint
	struct position m_pos;
	// link to a mob spawned from the point (if up)
	CNpc *	m_pMob;
	// link to the current parent pool
	CSpawnMobPool * m_pParentPool;
	// time the last mob died from this spawn
	__int64 tod;
};



class CSpawnPointGroup
{

public:

	// list of all spawnpoints in the group
	std::vector<SpawnPoint*> m_spawnList;

	// Settings of the group
	unsigned int m_groupId;
	unsigned short m_zoneId;
	
	// links to all pools assigned to the group
	std::vector<CSpawnMobPool*> m_pSpawnMobPool;
	
	CSpawnPointGroup();
	~CSpawnPointGroup();


	bool loadSpawnMobPool();
	bool loadSpawnPoints();

	void checkSpawnPoints();


};
#endif
